iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
自我挑戰組

Unit Test 學習路系列 第 11

Day 10: describe 的搭配寫法

  • 分享至 

  • xImage
  •  

昨天提到的 describetest 搭配一起的群組寫法。
今天補充一些其他寫法:

(一) describe 搭配 it

原本的寫法:

// Button
describe("Button", () => {
    test("Render a Log In Button", () => {
        render(<LogInButton />);

        const textEl = screen.getByText("Log In");
        expect(textEl).toBeInTheDocument();
    });

    test("Render a Log Out Button", () => {
        render(<LogInButton />);

        const textEl = screen.getByText("Log Out");
        expect(textEl).toBeInTheDocument();
    });
});

test 可以換成 it 執行結果一樣。

// Button
describe("Button", () => {
    it("Render a Log In Button", () => {
        render(<LogInButton />);

        const textEl = screen.getByText("Log In");
        expect(textEl).toBeInTheDocument();
    });

    it("Render a Log Out Button", () => {
        render(<LogInButton />);

        const textEl = screen.getByText("Log Out");
        expect(textEl).toBeInTheDocument();
    });
});

(二) describe 搭配 fit

原本的寫法:

// Button
describe("Button", () => {
    test.only("Render a Log In Button", () => { // 只執行這行測試
        render(<LogInButton />);

        const textEl = screen.getByText("Log In");
        expect(textEl).toBeInTheDocument();
    });

    test("Render a Log Out Button", () => {
        render(<LogInButton />);

        const textEl = screen.getByText("Log Out");
        expect(textEl).toBeInTheDocument();
    });
});

test.only 可以換成 fit 執行結果一樣。

// Button
describe("Button", () => {
    fit("Render a Log In Button", () => { // 只執行這行測試
        render(<LogInButton />);

        const textEl = screen.getByText("Log In");
        expect(textEl).toBeInTheDocument();
    });

    it("Render a Log Out Button", () => {
        render(<LogInButton />);

        const textEl = screen.getByText("Log Out");
        expect(textEl).toBeInTheDocument();
    });
});

(三) describe 搭配 xit

原本的寫法:

// Button
describe("Button", () => {
    test.skip("Render a Log In Button", () => { // 不執行這行測試
        render(<LogInButton />);

        const textEl = screen.getByText("Log In");
        expect(textEl).toBeInTheDocument();
    });

    test("Render a Log Out Button", () => {
        render(<LogInButton />);

        const textEl = screen.getByText("Log Out");
        expect(textEl).toBeInTheDocument();
    });
});

test.skip 可以換成 xit 執行結果一樣。

// Button
describe("Button", () => {
    xit("Render a Log In Button", () => { // 不執行這行測試
        render(<LogInButton />);

        const textEl = screen.getByText("Log In");
        expect(textEl).toBeInTheDocument();
    });

    it("Render a Log Out Button", () => {
        render(<LogInButton />);

        const textEl = screen.getByText("Log Out");
        expect(textEl).toBeInTheDocument();
    });
});

參考資源


上一篇
Day 9: Jest Group 應用
下一篇
Day 11: 什麼是 Code Coverage(一)?
系列文
Unit Test 學習路31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言